1. Technical Field
The present disclosure relates networks.
2. Related Art
Network systems are commonly used to move network information (may also be referred to interchangeably, as frames, packets or commands) between computing systems (for example, servers) or between computing systems and network devices (for example, storage systems). Various hardware and software components are used to implement network communication, including network switches.
A network switch is typically a multi-port device where each port manages a point-to-point connection between itself and an attached system. Each port can be attached to a server, input/output subsystem, bridge, hub, router, or another switch. The term network switch as used herein includes a multi-Level switch that uses plural switching elements within a single switch chassis to route data packets.
A network switch typically uses flow control to avoid overflow conditions in memory buffers that are used to store incoming packets. Based on the protocol type, for example, InfiniBand (“IB”), a flow control packet is typically sent between communicating ports. The flow control packet ensures that ports are synchronized with respect to available credit (i.e. storage space a receiving port).
In conventional systems, flow control packets are sent automatically, typically, dictated by the protocol standard. For example, IB network, a port sends a flow control packet after every 65,536 symbols. The flow control packet is sent without any regard to whether a flow control packet may actually be useful.
When a switch port sends flow control packet, it consumes a network link's available bandwidth. This can affect the overall efficiency of how quickly network packets are transmitted. Continuous efforts are being made improve the efficiency of network transmission that may be hampered by sending unnecessary flow control packets.